硬件合成提供一种高性能方式,使用显示控制器图层合成多个窗口。如果 Kanzi 应用程序由多层彼此叠加的分层应用程序组成,例如带有叠加的群集,则可以选择合成多个窗口。当您使用硬件合成时,可以单独开发和运行其中的每个应用程序。
硬件合成创建一个可以像使用纹理那样使用的合成目标。要得到正确的结果,硬件合成必须使用预乘阿尔法。请参阅阿尔法预乘。
当设置好 屏幕 (Screen) 节点的 屏幕清除颜色 (Screen Clear Color) 属性时,Kanzi 直接把颜色值写入到屏幕输出。这意味 屏幕清除颜色 (Screen Clear Color) RGB 值必须同阿尔法值进行预乘。
如果硬件合成不使用经过预乘的阿尔法,您必须将未经预乘的阿尔法转换为 Kanzi 输出的 RGBA 值。要将 RGBA 值转换成未经预乘的阿尔法,请执行以下操作:
例如:
如果您的工程不包含 DefaultBlit 材质类型,在素材库 (Library) > 材质和纹理 (Materials and Textures) 按下 Alt 并右键点击 材质类型 (Material Types) 中选择 DefaultBlit。

uniform sampler2D ContentTexture;
varying mediump vec2 vTexCoord;
void main()
{
precision lowp float;
vec4 color = texture2D(ContentTexture, vTexCoord);
if(color.a > 0.0)
{
color.rgb /= color.a;
}
gl_FragColor = color;
}


前往 材质笔刷 (Material Brush) 使用的材质,并确保材质的 混合模式 (Blend Mode) 属性已设置为 不透明 (Opaque)。
